The invention relates to computer printing systems.
Conventional computer-based printing systems use an operating system provided printing service, or xe2x80x9cprint managerxe2x80x9d. A print manager is an abstraction of a printing system implemented as a collection of operating system-provided application programming interfaces (xe2x80x9cAPIxe2x80x9d) and one or more print drivers. The print manager converts higher level graphics instructions into a language of control commands for use with a target printer. In a conventional printing system, when a user attempts to print a document from an application, the application sends specific serial commands to the operating system for sequentially printing the content of each page in the document according to user defined parameters.
Print services offered by conventional operating systems such as Apple Macintosh OS and Microsoft Windows(copyright) 95 require application programs to control the sequence and operation of the printing process. The application controls functions such as: timing of all requests to print document pages, initializing the printing process, sequential drawing of pages, and informing the printing system of the start and end of each page.
When conventional printing systems implement sophisticated printing features, such as tile printing or color separations, the page content from the application is typically buffered either in memory or on disk and multiple passes over the page content is required (i.e., supplying the same data from the application to the printing system multiple times). Buffering and supplying data in multiple passes can be expensive in terms of printing speed, system memory, and disk storage and access requirements.
The invention provides methods and apparatus implementing a technique for printing to a selected destination in a computer system. In general, in one aspect, the technique includes generating print events to provide a specific print service to a client application, where the print events request information from the client application according to the specific print service; and receiving responses to the print events from the client application, where at least one response includes print data to be printed to a destination.
In another aspect, the invention provides a technique for requesting a specific print service from a client application. The technique includes initializing a print session to print to a destination by sending a print initialization message to a print manager, receiving a print event from the print manager, and responding to the received print event.
In another aspect, the invention provides a technique for providing a specific print service. The technique includes registering a client application with a print manager; registering one or more attributes with the print manager, where at least one attribute indicates a specific print service to be provided by the print manager; initializing a print session, specifying one or more print session parameters; generating a print event according to the print session parameters and the registered attributes, where the print event requests information from the client application according to the specific print service to be provided by the print manager; generating at least one print parameter according to the specific print service to be provided by the print manager; sending the print event to the client application; if the client application supports the print event, responding to the print event by supplying print data to the print manager, where the print manager supplies the print data and each print parameter to a destination; determining whether the print session is complete; sending a termination print event to the client application; and terminating the print session.
Advantages of the invention include one or more of the following. The printing system is able to offer many sophisticated print services independent of print control capabilities of the client application program. Examples of sophisticated print services include drawing a page multiple times, such as for color separation or tile printing; using repeatable master page content; or customizing printed output with unique information on each copy, such as a retailer""s brochure targeted to individual customers (i.e., xe2x80x9cpersonalizationxe2x80x9d). The printing system optimizes the printer""s print flow. In addition, the printing system minimizes the burden on the client application, centralizing common sophisticated features in the print manager. This centralization improves programming efficiency and operation for client applications. The print manager also can be adapted to the limitations of the specific computer system and target printer.